package com.cloud.spider.dtos;

/**
 * @author 柳晓宇
 * @description 章节内容
 * @create 2023/8/27
 */
public class ChapterContentDto implements Comparable{
    private String uri; // 正文uri
    private String volume ; // 分卷
    private String title; // 标题
    private String chapterContent; // 正文
//    private String pageIndex; // 分页索引 放弃使用 因为无法去重，即使正文uri一样，但是不在一个分页

    public ChapterContentDto(String uri, String volume, String title, String chapterContent) {
        this.uri = uri;
        this.volume = volume;
        this.title = title;
        this.chapterContent = chapterContent;
    }

    public ChapterContentDto() {
    }

    public String getUri() {
        return uri;
    }
    public void setUri(String uri) {
        this.uri = uri;
    }
    public String getVolume() {
        return volume;
    }
    public void setVolume(String volume) {
        this.volume = volume;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getChapterContent() {
        return chapterContent;
    }
    public void setChapterContent(String chapterContent) {
        this.chapterContent = chapterContent;
    }

    /**
     * @description: 利用标题进行比较
     * @param: [o] 
     * @return: boolean 
     * @author: Liuxiaoyu
     * @date: 2023/9/10 17:33
     */
//    @Override
//    public boolean equals(Object o) {
//        if (this == o) return true;
//        if (o == null || getClass() != o.getClass()) return false;
//        ChapterContentDto that = (ChapterContentDto) o;
//        return title.equals(that.title);
//    }
//
//    @Override
//    public int hashCode() {
//        return Objects.hash(title);
//    }
    //    @Override
//    public boolean equals(Object o) {
//        if (this == o) return true;
//        if (o == null || getClass() != o.getClass()) return false;
//        ChapterContentDto that = (ChapterContentDto) o;
//        return uri.equals(that.uri);
//    }
//    @Override
//    public int hashCode() {
//        return Objects.hash(uri);
//    }


    /**
     * @description: 根据分页索引和标题排序 返回值是正数，当前对象大；返回是负数，当前对象小；返回0，一样大
     * @param: [o] 
     * @return: int 
     * @author: Liuxiaoyu
     * @date: 2023/9/10 16:41
     */ 
    @Override
    public int compareTo(Object o) {
        // 对象
        if (o == this){
            return 0;
        }
        if (o instanceof ChapterContentDto) {
            ChapterContentDto obj = (ChapterContentDto) o;
//            int v1 = this.pageIndex.compareTo(obj.pageIndex);
//            if (v1 != 0) {
//                return v1;
//            }
//            return this.uri.compareTo(obj.uri);
            // 不需要校验pageIndex了
            return this.uri.compareTo(obj.uri);
        }

        throw new RuntimeException("排序出现异常");

    }
}
